Introduction

All software development projects benefit from following a disciplined process methodology. There are several different methodologies that a team can select based on the needs of the project and any methodology requirements from the customer or product owner. The benefits of a software development process are that methodology defines the way in which the development team will cover the necessary tasks to bring a project from start to finish. OpenUP is a low ceremony process that applies an agile approach for software development. The process is composed of four phases: Inception, Elaboration, Construction, and Transition. Planning focuses on delivering workable software to the product owner on regular intervals (iterations) measured in the period of weeks.

Learning Outcomes

Inception Phase

In the Inception phase, the team gains an understanding of what they need to build which includes defining the overall scope of the project and identifying the stakeholders. Requirements are captured through a mechanism determined by the team and product owner. The team identifies a possible high-level architecture to use. The team should leave this phase convinced that the project vision is technically feasible. Typically, this phase will have one iteration though more could be needed for large projects with multiple stakeholders or many new technical unknowns.

Design topics Process topics
Teamwork topics Communication topics

Elaboration Phase

The primary goal of the Elaboration phase is to address architecturally significant risks. This will be done by selecting user stories to implement that will provide and end-to-end validation of the architecture. The team will further explore with the stakeholders the requirements that the team wants to implement during this phase to validate the architecture. Key technical risks will be mitigated using spike solutions to prove out new technologies. The Elaboration phase will last long enough for the team to get full architectural coverage of all areas in the system.

Design topics Process topics
Teamwork topics Communication topics

Construction Phase

The Construction phase works on building the desired system including the design, implementation, and testing aspects. Development is done in multiple iterations with a goal of delivering a working partial system with each iteration, culminating with the fully functional system. In each iteration, the team selects the requirements to implement based on the priorities given by the product owner and the team's history of how much work it can accomplish.

Design topics Process topics
Teamwork topics
Communication topics

Transition Phase

This final phase of the project, deploys the full working system to the product owner and ensures that the team has met all the expectations. There may be some bug fixes needed, or clean up work that the team will continue working on. As the project wraps up, the next project life cycle may begin for another release of the product. An important element of the Transition phase is the team's reflection on its performance through the project along with lessons learned for improving the process and technology.

Design topics Process topics
Teamwork topics
  • Professional responsibility
Communication topics

  • Professional responsibility